#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/11/14 14:32
# @Author : youngchaolin

print()
# 1 匹配整数或者小数（包括整数和负数）
# (-)?\d+(.\d+)?

# 2 匹配年月日日期 格式2018-12-6
# \d{4}[-][1-12][-][1-31]
# \d{4}\-\d{1,2}\-\d{1,2}
# \d{4}[-]\d{1,2}[-]\d{1,2}

# 3 匹配qq号
# [1-9]([0-9]{5,11})

# 4 11位电话号码
# ^1[3-9]\d{9}$

# 5 长度为8-10位的用户密码：包含数字字母下划线
# \w{8,10}

# 6 匹配验证码：4位数字字母组成
# ^[a-zA-Z0-9]{4}$

# 7 匹配邮箱地址
# \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
# \w+@([A-Za-z0-9]+\.)+[A-Za-z]{2,14}

# 8 从类似
'''
<a>banana</a>
<b>wahaha</b>
<h1>qqxing</h1>
'''
# 的字符中，匹配出banana wahaha qqxing这样的内容
# 匹配出a b h1这样的内容
exp='''
<a>banana</a>
<b>wahaha</b>
<h1>qqxing</h1>
'''
print(exp)
import re
ret=re.findall('<\w+>(\w+)</\w+>',exp)
print(ret)
ret=re.findall('<(\w+)>\w+</\w+>',exp)
print(ret)

str='1-2*((60-30+(-40/5)(9-25/3+7/399/42999+10589/14))-(-43)/(16-3*2))'
# 9 从上面的算式中匹配出最内层小括号以及小括号内的表达式
# 匹配出(-40/5)，(9-25/3+7/399/42999+10589/14)，(-43)，(16-3*2)
regx='\([^()]+\)'
ret=re.findall(regx,str)
print(ret)

#TODO 先匹配小括号里的内容，然后先计算乘除法，再计算加减法


# 10 从类似9-25/3+7/399/42999+10589/14的表达式中，匹配出从左至右第一个乘法或除法
str='9-25/3+7/399/42999+10589/14'
# .*?(\/|\*)
ret=re.findall('(\d+(?:[*]|[/])\d+)',str)
print(ret)

